[DllImport("kernel32.dll")]
static extern IntPtr LockResource(IntPtr hResData);
None.
does not call SetLastError, according to MSDN.
this function returnes a pointer to the resource. you can use Marshal.Copy() to copy the data from the pointer to a managed array.
pResource = LockResource(hResource);
if (hResource.ToInt32() == 0) {
throw new ApplicationException("could not get pointer to file");
}
fileSizeComp = ((Module)mFiles[index]).CompSize;
fileSizeUnComp = ((Module)mFiles[index]).Size;
byte[] fileBuffComp = new byte[fileSizeComp + mOffset];//original buffer
byte[] fileBuffUnComp = new byte[fileSizeUnComp + 1]; //uncompressed file
//copy to managed memory:
Marshal.Copy(pResource, fileBuffComp, 0, fileSizeComp + mOffset);
Do you know one? Please contribute it!